// @ts-nocheck

// import path from 'path'
const path = require('path')
// import fs from 'fs' // 高版本使用方式
const fs = require('fs')// node 12及以下版本使用
// @ts-ignore
import marked from 'marked'

const mdToJs = str => {
  const content = JSON.stringify(marked(str))
  return `export default ${content}`
}

// 浏览器只认识js,不认识markdown;自己用mdToJs进行转换
export function md() {
  return {
    configureServer: [ // 用于开发
      async ({ app }) => {
        app.use(async (ctx, next) => { // koa
          //如果路径是以.md结尾得，就变为js
          if (ctx.path.endsWith('.md')) {
            ctx.type = 'js'
            const filePath = path.join(process.cwd(), ctx.path)
            // js的内容呢，就是把markdown变为js
            ctx.body = mdToJs(fs.readFileSync(filePath).toString())
          } else {
            await next()
          }
        })
      },
    ],
    transforms: [{  // 用于 rollup // 插件
      test: context => context.path.endsWith('.md'), // 以md的文件进行编译
      transform: ({ code }) => mdToJs(code) // 利用mdToJs将md转化为js文件
    }]
  }
}
